package com.lhd._05mvcboot01.controller;

import com.lhd._05mvcboot01.pojo.dto.WeichatDTO;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;

/**
 * @author lhd
 * @date 2024/4/20
 * @apiNote
 */
@Controller
public class UserController {
    /**
     * 1.RequestMapping:根据请求的URL地址的路径,匹配对应的控制器方法;
     * 2.ResponseBody:允许控制器方法以返回值[return]的形式返回给客户端数据;
     *   http://localhost:8080/v1/users/login
     * 3.GET请求传递数据:通过查询参数
     *   http://localhost:8080/v1/users/login?username=zhaoxiaodao&password=123456
     * 4.POST请求传递数据:通过请求体
     */
    @RequestMapping("/v1/users/login")
    @ResponseBody
    public String login() {
        return "<h1 style='color:red'>恭喜你,登录成功</h1>";
    }

    /**
     * 三个种接受方式
     *  HttpServletRequest参数接收
     * 1. 客户端传递给服务端数据：
     *    http://localhost:8080/v1/users/reg?username=yinghuochong&password=123456
     * 2. 服务端接收数据的方式1
     *    通过HttpServletRequest参数接收
     */
    @RequestMapping("/v1/users/register")
    @ResponseBody
    public String register(HttpServletRequest request) {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        return username + " - " + password;
    }

    /**
     * 通过声明参数方式接收
     * 1.修改密码功能接口说明：
     *    1.1 地址：/v1/users/changepwd
     *    1.2 查询参数：username   newpwd
     *    1.3 返回响应：username-newpwd
     * 2.服务端接收数据的方式2:通过声明参数方式接收
     *   http://localhost:8080/v1/users/changepwd?username=xxx&newpwd=yyy
     */

    @RequestMapping("/v1/users/changepwd")
    @ResponseBody
    public String changepwd(String username, String newpwd) {
        return username + " - " + newpwd;
    }


    /**
     * DTO类方式接收
     * 1.功能：第三方微信登录功能
     *    1.1 请求URL地址：/v1/users/weiChat
     *    1.2 查询参数：?name=微信号&pwd=密码
     *    1.3 返回响应: 微信号:密码
     *    http://localhost:8080/v1/users/weiChat?name=微信号&pwd=密码
     */
    @RequestMapping(value = "/v1/users/weiChat")
    @ResponseBody
    public String weiChat(WeichatDTO weichatDTO){
        String name = weichatDTO.getName();
        String pwd = weichatDTO.getPwd();

        return name + ":" + pwd;
    }
}
